1. Field of the Invention
The present invention relates to computer systems for performing sparse matrix computations. More particularly, the present invention relates to a method and an apparatus that uses a block-partitioned technique to efficiently solve sparse systems of linear equations.
2. Related Art
The solution of large sparse symmetric linear systems of equations constitutes the primary computational cost in numerous applications, such as finite-element design, linear programming, circuit simulation and semiconductor device modeling. Efficient solution of such systems has long been the subject of research, and considerable progress has been made in developing efficient algorithms to this end. A direct solution technique known as “Cholesky Factorization” is the most widely used approach to solve such a system. Under Cholesky factorization, the complete solution sequence requires many stages, including matrix reordering, symbolic factorization, numerical factorization and triangular solution. Of these stages, numerical factorization is typically the most computationally expensive.
One method of performing numerical factorization is based on a right-looking supernode-supernode method described in “Parallel Algorithms for Sparse Linear Systems” by Michael T. Heath, Esmond Ng and Barry W. Peyton, in “Parallel Algorithms for Matrix Computations” by Gallivan, et al. (Editors), SIAM (1994) (referred to as HNP). In a sparse matrix, a supernode is a set of contiguous columns that have essentially the same sparsity structure. Supernodes can be used to organize the numerical factorization stage around matrix-vector (supernode-column) and matrix-matrix (supernode-supernode) primitive operations leading to a substantial performance improvement arising from more efficient use of the processor caches and pipelining units.
In some applications, for example circuit simulation, existing numerical factorization techniques perform unnecessary work because the matrix system arising in such simulations is only partially modified from one time step to the next in a time-dependent simulation. For example, in a circuit simulation, linear circuit elements, such as resistors and capacitors, do not change from one time step to the next. In contrast, non-linear components, such as diodes, exhibit a nonlinear relationship between current and voltage and are typically time-dependent. Hence, the matrix system for simulating the circuit includes some static entries that remain fixed over many time steps, and some dynamic entries that change from one time step to the next. This means that the much of the work involved in factorizing the static entries every time step is largely wasted because the static entries do not change between time steps.
Hence, what is needed is a method and an apparatus for solving systems of linear equations without performing unnecessary work in factorizing static matrix entries.